There are numerous situations in which computer users are unsure whether or not to install new programs, updates, or plugins that are presented for their selection and approval. Initializing an existing application installed on the computer may cause a notification (message box) to appear advising that a new tool bar or update is available for the application. These notifications may also be sent based on the availability of new software updates from the software provider, even if the user is not accessing the application at the time. Further, users may read articles and blogs advising them to try new programs and tools.
Often the decision to install one of the aforementioned executable packages results in modifications to the computer system that cannot easily be undone. This is especially prevalent with antivirus programs. Many cannot be totally removed and, even if uninstalled, may leave behind remnants that must be extracted manually. Often these vestiges cannot be eliminated without extreme actions. Achieving a ‘clean’ uninstall may require skills that ordinary users do not possess, such as updating the windows registry, finding and deleting related files in unknown directories, modifying pointers, modifying system parameters, removing processes from start lists and so on.
Sometimes the necessary files cannot be deleted because they appear to the operating system that another application is using them. There may be a dynamic link library (dll) version conflict, such that application A is using version 1.1 dll and application B wants to install version 1.2. Installing the new version, 1.2, might render program A inoperable because the interface or parameters have changed. Furthermore, this may not be discovered until the installation has partially completed and the computer is already damaged because modifications have already been made to the software environment. If one the above scenarios occurs, it may not be possible to install a new or different program of the same type (e.g. antivirus package) because the new version detects the remnants of the old software package and proceeds as if the old package is still present or the installation fails in the middle because the required dll cannot be replaced with a newer version.